package cn.com.bluemoon.daps.sync.core.sync.sql.mysql.datatype.date;

import cn.hutool.core.util.StrUtil;

import java.util.Collections;
import java.util.Set;

/**
 * @author Jarod.Kong
 * @date 2021/7/22 14:54
 */
public class YearDataType extends DateAndTimeDataType {
    /**
     * 默认值处理
     * 是否加单引号 等
     * <a href="https://dev.mysql.com/doc/refman/8.0/en/year.html">参考</a>
     *
     * @param defaultValue source
     * @return target
     */
    @Override
    public Object cast(Object defaultValue) {
        if (defaultValue == null) {
            return null;
        }
        if ("now()".equalsIgnoreCase(StrUtil.trim(defaultValue.toString()))) {
            return defaultValue;
        } else {
            return wrapper(defaultValue, SINGLE_QUOTE);
        }
    }

    /**
     * @return 名称
     */
    @Override
    public Set<String> name() {
        return Collections.singleton("year");
    }
}
